Skip to content

ci: build production app + worker Docker images from main#392

Merged
BigSimmo merged 2 commits into
mainfrom
claude/docker-image-ci
Jul 8, 2026
Merged

ci: build production app + worker Docker images from main#392
BigSimmo merged 2 commits into
mainfrom
claude/docker-image-ci

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a non-blocking Docker image build workflow (.github/workflows/docker-image.yml) that builds the production app (Dockerfile) and worker (Dockerfile.worker) images on GitHub runners.

This fulfils the deploy contract in docs/deployment-architecture.md"Images are built from main… CI job to be added" — and closes the gap surfaced while validating deployability of the demo-leak fix (#373/#378): the image build runs the exact npm ci + next build a Fly.io / Cloud Run deploy runs, but the next build step allocates an 8 GiB heap and OOMs local Docker Desktop. GitHub runners (~16 GiB) have the headroom, so this validates image buildability where it can actually complete.

Design

  • Non-blocking: standalone workflow, not part of the required verify check. It does not gate merges.
  • Nothing is pushed to a registry — the build just succeeds or fails (pure buildability validation).
  • Cost-bounded: runs on push to main/release/**, workflow_dispatch, and the weekly schedule — not on every PR (mirrors how release-browser-matrix / deployment-boot-smoke are gated). Trigger on a branch on demand via "Run workflow".
  • App image builds with the placeholder publishable key (public-by-design; real key is a deploy-time build arg); worker image needs no build args.

Verification

  • Workflow YAML parses (yaml.safe_load)
  • Build args / Dockerfile paths match Dockerfile + Dockerfile.worker
  • Full image build run — triggering via workflow_dispatch on this branch to confirm both images build green on CI (local Docker Desktop OOMs, so this is the authoritative check)

🤖 Generated with Claude Code

Adds a non-blocking "Docker image build" workflow that runs the exact
npm ci + next build the Fly.io / Cloud Run deploy runs, on a GitHub runner
with enough memory for the build's 8 GiB heap (local Docker Desktop OOMs on
it). Fulfils the deploy contract in docs/deployment-architecture.md ("Images
are built from main"): every main/release push now proves the tree produces a
deployable image before a real deploy. Nothing is pushed to a registry — the
build just succeeds or fails. Gated to main/release/dispatch/schedule to bound
CI cost; run on a branch on demand via "Run workflow".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@supabase

supabase Bot commented Jul 8, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

Adds a paths-scoped pull_request trigger (Dockerfiles, deps, engine/build
guards, the workflow itself) so containerization is validated before merge
when it can actually break, without rebuilding on every src-only PR (verify
already runs next build for those).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BigSimmo
BigSimmo enabled auto-merge July 8, 2026 08:48
@BigSimmo

BigSimmo commented Jul 8, 2026

Copy link
Copy Markdown
Owner Author

Both images build green on CI (run 28929799637):

  • worker-image: success (~1m16s)
  • app-image: success — the next build (8 GiB heap) that OOM-crashes local Docker Desktop completes cleanly on the GitHub runner.

This confirms main produces a deployable production image (app + worker). The local Docker Desktop OOM was purely a local-resource limit, not a defect.

@BigSimmo
BigSimmo merged commit e678028 into main Jul 8, 2026
8 checks passed
@BigSimmo
BigSimmo deleted the claude/docker-image-ci branch July 8, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant